[小ネタ] 請求レポートから QuickSight 利用ユーザを確認する
Guten Tag、ベルリンから伊藤です。
お問い合わせから確認した小ネタを紹介します。
QuickSight の料金をCSVの請求レポートから確認した時にリソースIDが入っていますが、実際のQuickSightユーザ名とは異なるので、この調べ方を確認しました。
請求レポートでのQuickSightのリソースID
まずは、Cost and Usage Report をダウンロードし、CSVファイルから整形して確認しました。(弊社のメンバーズのお客様は、Members Portalのご利用料金の画面からCSVをダウンロードできます。)
利用料金極小でサンプル少なめですが、検証に利用したQuickSightのコストにフィルターすると、リソースIDを含む行があります。しかし、実際のQuickSightのユーザ名とは異なり、システムに割り振られたようなIDとなっています。
しかも、よく見ると「ds」= Directory Service で、QuickSightのリソースARNではなく、以下のような形式になっています。
arn:aws:ds:us-east-1:<AWS Account ID>:user/<Directory ID>/<Directory User ID>
※QuickSightの利用リージョンに関わらず、us-east-1(バージニア北部)です。
なお、"d-" から始まるディレクトリIDを念の為 Directory Service のコンソールやCLIで探しましたが、存在していません。今回のQuickSightユーザはもちろんADなどと紐づけているわけでもなく、手動でユーザ追加しています。
QuickSightユーザについて
下記のブログでQuickSightのユーザの解説がされていて、ここでもIAMの許可アクションに「ds:」が含まれていますが、恐らくユーザの管理に内部的にディレクトリサービスが使用されているのでしょう。(※現時点で公式には情報公開されていません)
QuickSightコンソールでは、ユーザ名が表示されるだけでARNの情報はありません。CLIのlist-usersを実行してみても、QuickSightのARNが表示され、請求レポートのARNとは異なります。
$ aws quicksight list-users --aws-account-id=<AWS Account ID> --namespace=default | jq . { "Status": 200, "UserList": [ { "UserName": "ito@example.com", "Active": true, "Role": "AUTHOR", "Email": "ito@example.com", "Arn": "arn:aws:quicksight:eu-west-1:<AWS Account ID>:user/default/ito@example.com" } ], (後略)
QuickSightのユーザと請求レポートのARNをひもづける
この請求レポートのARNですが、CloudTrailの情報を使って、QuickSightのユーザとひもづけることが可能です。
CloudTrailコンソールのイベント履歴を開いて、
フィルター属性に「ユーザー名」、ルックアップ値に先ほどの <Directory User ID>
を入力します。
すると、イベントが検索に引っかかりました。
詳細を開いて[イベントの表示]をクリックすると、userIdentity
下の属性 userName
としてQuickSightのユーザ名が表示されました。
もちろん、CLIの lookup-events の使用も可能です。
下記のコマンドで、対象のARNに一致するユーザ名のみを取得できました。
$ aws cloudtrail lookup-events --profile <Profile Name> \ --lookup-attributes AttributeKey=Username,AttributeValue=<Directory User ID> \ | jq -r .Events[0].CloudTrailEvent | jq -r .userIdentity.userName
参考:CloudTrail を使用してリソースに対するアクションを検索する
以上、どなたかのお役に立てば幸いです!